package bridge;

import bridge.brideg.*;
import bridge.control.*;

/**
 * @description: 桥接模式 接口和抽象类的组合
　* @author 周杨
　* @date 2019/6/13  15:55
**/
public class MainTest {
    public static void main(String[] args) {
        //首先声明这是一个电视控制器
        TvControl mLGTvControl;
        TvControl mSonyTvControl;
        //再声明是什么厂商制造的
        mSonyTvControl = new TvControl(new SonyControl());
        mLGTvControl = new TvControl(new LGControl());
        //具体在调用方法时 逻辑在实现类中实现 但抽象的部分 通过实现相应的接口 传入到实现类中调用
        mLGTvControl.onOff();
        mLGTvControl.nextChannel();
        mLGTvControl.nextChannel();
        mLGTvControl.preChannel();
        mLGTvControl.onOff();
        mSonyTvControl.onOff();
        mSonyTvControl.preChannel();
        mSonyTvControl.preChannel();
        mSonyTvControl.preChannel();
        mSonyTvControl.onOff();

        NewTvControl mSharpTvControl;
        mSharpTvControl = new NewTvControl(new SharpControl());
        mSharpTvControl.onOff();
        mSharpTvControl.nextChannel();
        mSharpTvControl.setChannel(9);
        mSharpTvControl.setChannel(28);
        mSharpTvControl.back();
        mSharpTvControl.onOff();
    }
}
